local ClientOHOH = _G.ClientOHOH;

local M = ClientOHOH.class.new(script, ClientOHOH.files.OHOHOLYBUIBase());
local CallBackManager = ClientOHOH.load.CallBackManager();
local ConnectClass=_G.CommonOHOH.load.Connect();
local TweenHelper = _G.CommonOHOH.load.TweenHelper();
local BtnHelper = ClientOHOH.load.BtnHelper();

local OHOHScreenBase=ClientOHOH.load.OHOHScreenBase()
local BigNumberHelper = ClientOHOH.load.BigNumberHelper();
local ConnectClass=_G.CommonOHOH.load.Connect();




function InitInsts(ui)
	ui.insts = {
        btn="ctrl.btn",--按钮
        equipIcon="ctrl.icon_equip",--装备小图标
        headIcon="ctrl.icon_head",--头像
        lockIcon="ctrl.icon_lock",--锁定小图标
        levelText="ctrl.level",--等级文本
        -- powerText="ctrl.power",--力量小图标
        activeIcon="ctrl.active",--激活图标
        deleteIcon="ctrl.delete",--激活图标
    };
end;



function M.new(...)
	return M(...);
end;


function M.ctor(self,uiobj,id,level)
	InitInsts(self)
    self.Id=id
    self.uiObject=uiobj
    self.List={}
    self.ActiveEvent=ConnectClass.new()      -- 单元被点击

	M.super.ctor(self, uiobj);

    self.ui=self.insts
    CallBackManager:AddRbxConnect(self,self.ui.btn.Activated, function()

        if not self.ui.activeIcon.Visible then
            self:Active()
            self.ActiveEvent:Action()
        end
        
	end);

    self:UpdateLevel(level)

    self:NoActive()

end;

function M.dtor(self)
	M.super.dtor(self);
    self.uiObject:Destroy()
end;

function M.UpdateLevel(self,level)

    self.Level=level
    self.ui.levelText.Text=level
    self.sortId=level
    self.uiObject.LayoutOrder= self:GetLayoutOrder()
end

function M.GetLayoutOrder(self,v)
    -- local sortValue=tostring(math.floor(power*100))
    -- local digit=tostring(#sortValue) --获取位数
    -- local first2Digit = string.sub(tostring(sortValue), 1, 2)--获取前2位
    -- local shot=100000-tonumber(digit..first2Digit)
    -- return shot;
    return  100000-self.Level
end

function M.GetId(self)
    return self.Id
end

function M.Active(self)
    self.ui.activeIcon.Visible=true
    self.ui.equipIcon.Visible=false
    
end

function M.NoActive(self)
    self.ui.activeIcon.Visible=false
    self.ui.equipIcon.Visible=self.isEquip
end

--设置显示状态
function M.ShowOrHide(self,isShow)
    self.uiObject.Visible=isShow
end


--切换锁定标记
function M.isLock(self)
   return   self.ui.lockIcon.Visible
end

--切换锁定标记
function M.isEquip(self)
   return  self.ui.equipIcon.Visible
end


--切换锁定标记
function M.ChangeLock(self)
    self.ui.lockIcon.Visible=not self.ui.lockIcon.Visible
end

--根据数据重置锁定状态
function M.SetLock(self,isLock)
    self.ui.lockIcon.Visible=isLock
end


--切换删除标记
function M.ChangeSell(self)
    self.ui.deleteIcon.Visible=not self.ui.deleteIcon.Visible
end

--是否在售卖中
function M.isSelling(self)
    return  self.ui.deleteIcon.Visible
end

--重置删除标记
function M.RemoveSell(self)
    self.ui.deleteIcon.Visible=false
end
--添加到删除
function M.AddSelling(self)
    self.ui.deleteIcon.Visible=true
end

--获取排序
function M.getSortId(self)
    return self.sortId
end

--更新
function M.Update(self,headIcon,isEquip,level,isLock)
    isEquip=isEquip or false
    isLock=isLock or false
    level=level or 1
    self.ui.equipIcon.Visible=isEquip
    self.ui.headIcon.Image=headIcon
    self.ui.lockIcon.Visible=isLock
    self.isEquip=isEquip
    self:UpdateLevel(level)
end

return M